<?php

interface FormulaireValidator{

	/**
	 * Renvoit un entier correspondant au niveau de test.
	 *
	 * @param String $value
	 * @return int niveau du test.
	 */
	public function test($value);
	
}

abstract class FormulaireValidatorImpl{
	
	/**
	 * Le level requis minimal du validator (défaut = 1) pour être un succés.
	 * @var int
	 */
	protected $levelRequis = 1;
	
	/**
	 * Le message délivré en cas d'échec.
	 * 
	 * @var String
	 */
	protected $messageEchec = null;
	
	public function getMessage($level){
		
		$error = null;
	
		if($this->isRefuse($level)){
			$error = $this->messageEchec;
		}
	
		return $error;
	}
	
	public function isRefuse($level){
		
		return ($level < $this->levelRequis);
	}
	
	//pour eviter que les validator plantent en fonction du langage des tests (fonctions vides).
	public function test($value){}
	public function testJS(){}
	public function testAJAX($cible, $value){}
}